const crypto = require('crypto');
const generateUUIDv4 = function() {
  // 生成16字节的随机数
  const array = new Uint8Array(16);
  crypto.randomFillSync(array);
  // 设置 UUID v4 格式的特定位
  array[7] = (array[7] & 0x0f) | 0x40; // 版本号为 4
  array[8] = (array[8] & 0x3f) | 0x80; // 第 13 个字符为 8、9、a 或 b
  // 转换为十六进制字符串
  return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('').replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, '$1-$2-$3-$4-$5');
};
console.log(generateUUIDv4());
